home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="utf-8" ?>
- <!DOCTYPE background PUBLIC "-//Apple, Inc.//DTD background V 2.0//EN" "" >
- <background>
- <id>3664</id>
- <filler1>0</filler1>
- <bitmap>BMAP_3997.pbm</bitmap>
- <cantDelete> <true /> </cantDelete>
- <showPict> <true /> </showPict>
- <dontSearch> <false /> </dontSearch>
- <link rel="stylesheet" type="text/css" href="stylesheet_6249.css" />
- <part>
- <id>108</id>
- <type>button</type>
- <visible> <false /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>293</left>
- <top>198</top>
- <right>408</right>
- <bottom>246</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Chicago</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name></name>
- <script>on idle
- do me
- if the result is empty then
- put empty into me
- set script of me to empty
- send ("doMenu" && quote & "Compact Stack" & quote) to HyperCard
- end if
- set cantAbort of this stack to false
- end idle</script>
- </part>
- <part>
- <id>4</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>17</top>
- <right>341</right>
- <bottom>41</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>Name</name>
- <script></script>
- </part>
- <part>
- <id>97</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>39</top>
- <right>341</right>
- <bottom>62</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>Company</name>
- <script></script>
- </part>
- <part>
- <id>6</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>72</top>
- <right>283</right>
- <bottom>95</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>Street</name>
- <script></script>
- </part>
- <part>
- <id>98</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>94</top>
- <right>283</right>
- <bottom>117</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>City</name>
- <script></script>
- </part>
- <part>
- <id>99</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>116</top>
- <right>283</right>
- <bottom>139</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>State</name>
- <script></script>
- </part>
- <part>
- <id>104</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>100</left>
- <top>138</top>
- <right>283</right>
- <bottom>161</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>Zip</name>
- <script></script>
- </part>
- <part>
- <id>8</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>114</left>
- <top>176</top>
- <right>283</right>
- <bottom>193</bottom>
- </rect>
- <style>opaque</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Phone 1</name>
- <script></script>
- </part>
- <part>
- <id>100</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>114</left>
- <top>192</top>
- <right>283</right>
- <bottom>209</bottom>
- </rect>
- <style>opaque</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Phone 2</name>
- <script></script>
- </part>
- <part>
- <id>101</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>114</left>
- <top>208</top>
- <right>283</right>
- <bottom>225</bottom>
- </rect>
- <style>opaque</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Phone 3</name>
- <script></script>
- </part>
- <part>
- <id>102</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>114</left>
- <top>224</top>
- <right>283</right>
- <bottom>241</bottom>
- </rect>
- <style>opaque</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <true /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Phone 4</name>
- <script></script>
- </part>
- <part>
- <id>81</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>7</left>
- <top>24</top>
- <right>75</right>
- <bottom>40</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>Name Label</name>
- <script></script>
- </part>
- <part>
- <id>80</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>7</left>
- <top>46</top>
- <right>75</right>
- <bottom>62</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>Company Label</name>
- <script></script>
- </part>
- <part>
- <id>79</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>8</left>
- <top>79</top>
- <right>76</right>
- <bottom>95</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>Street Label</name>
- <script></script>
- </part>
- <part>
- <id>75</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>8</left>
- <top>101</top>
- <right>76</right>
- <bottom>117</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>City Label</name>
- <script></script>
- </part>
- <part>
- <id>82</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>8</left>
- <top>145</top>
- <right>76</right>
- <bottom>161</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>Zip Code Label</name>
- <script></script>
- </part>
- <part>
- <id>66</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>99</left>
- <top>227</top>
- <right>116</right>
- <bottom>244</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>23613</icon>
- <textAlign>right</textAlign>
- <font>Geneva</font>
- <textSize>9</textSize>
- <textStyle>plain</textStyle>
- <name>Phone Number 4</name>
- <script>on mouseUp
- dialNumber "Phone 4"
- end mouseUp</script>
- </part>
- <part>
- <id>65</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>99</left>
- <top>211</top>
- <right>116</right>
- <bottom>228</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>23613</icon>
- <textAlign>right</textAlign>
- <font>Geneva</font>
- <textSize>9</textSize>
- <textStyle>plain</textStyle>
- <name>Phone Number 3</name>
- <script>on mouseUp
- dialNumber "Phone 3"
- end mouseUp</script>
- </part>
- <part>
- <id>39</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>99</left>
- <top>195</top>
- <right>116</right>
- <bottom>212</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>23613</icon>
- <textAlign>right</textAlign>
- <font>Geneva</font>
- <textSize>9</textSize>
- <textStyle>plain</textStyle>
- <name>Phone Number 2</name>
- <script>on mouseUp
- dialNumber "Phone 2"
- end mouseUp</script>
- </part>
- <part>
- <id>21</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>99</left>
- <top>179</top>
- <right>116</right>
- <bottom>195</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>23613</icon>
- <textAlign>right</textAlign>
- <font>Geneva</font>
- <textSize>9</textSize>
- <textStyle>plain</textStyle>
- <name>Phone Number 1</name>
- <script>on mouseUp
- dialNumber "Phone 1"
- end mouseUp</script>
- </part>
- <part>
- <id>83</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>7</left>
- <top>180</top>
- <right>75</right>
- <bottom>196</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>Telephone Label</name>
- <script></script>
- </part>
- <part>
- <id>20</id>
- <type>button</type>
- <visible> <false /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>297</left>
- <top>198</top>
- <right>363</right>
- <bottom>247</bottom>
- </rect>
- <style>transparent</style>
- <showName> <true /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>12722</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <name>Appointments</name>
- <script>on mouseUp
- set cursor to watch
- put "Appointments" into theStack
- go stack theStack in new window -- ∆
- get the result
- if it = "Cancel" then exit mouseUp
- if it ≠ empty then
- go stack theStack -- ∆
- if the result ≠ empty
- then answer "Can't find stack" && quote & theStack & quote -- ∆
- end if
- end mouseUp</script>
- </part>
- <part>
- <id>22</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>368</left>
- <top>210</top>
- <right>415</right>
- <bottom>254</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>22978</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <name>Home</name>
- <script>on mouseUp
- set cursor to watch
- go home
- end mouseUp
- </script>
- </part>
- <part>
- <id>51</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>301</left>
- <top>138</top>
- <right>401</right>
- <bottom>157</bottom>
- </rect>
- <style>rectangle</style>
- <showName> <true /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>New Card</name>
- <script>on mouseUp
- -- Requires handler: toggleMark
- -- create a new card and leaving the cursor into the name field
- toggleNotes false
- set lockMessages to true
- doMenu "New Card"
- toggleMark false
- select after text of bg field id 4
- end mouseUp
- </script>
- </part>
- <part>
- <id>52</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>301</left>
- <top>161</top>
- <right>401</right>
- <bottom>180</bottom>
- </rect>
- <style>rectangle</style>
- <showName> <true /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Delete Card</name>
- <script>on mouseUp
- -- Requires handler: deleteCurrentCard
- if the optionKey is down then
- doMenu "Delete Card"
- exit mouseUp
- end if
- if the number of cards in this bkgnd = 1 then
- answer "Can't delete the last address card." with "OK" -- ∆
- exit to hyperCard
- end if
- answer "Delete this address card?" with "Cancel" or "OK" -- ∆
- if it is "OK" then -- ∆
- set cursor to watch
- get number of this card
- lock screen
- doMenu "Delete Card"
- go card it - 1
- unlock screen
- end if
- end mouseUp
- </script>
- </part>
- <part>
- <id>53</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>301</left>
- <top>92</top>
- <right>401</right>
- <bottom>111</bottom>
- </rect>
- <style>rectangle</style>
- <showName> <true /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Find…</name>
- <script>on mouseUp
- -- Requires handler: findText
- global AddressFind
- ask "What text do you want to find?" with AddressFind -- ∆
- if it is empty then exit mouseUp
- else
- put it into AddressFind
- findText
- end if
- end mouseUp</script>
- </part>
- <part>
- <id>54</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>301</left>
- <top>115</top>
- <right>401</right>
- <bottom>134</bottom>
- </rect>
- <style>rectangle</style>
- <showName> <true /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <false /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Show Notes</name>
- <script>on mouseUp
- -- Requires handler: toggleNotes
- -- hide/show the Notes field
- toggleNotes (not visible of bkgnd field "Notes")
- end mouseUp
- .</script>
- </part>
- <part>
- <id>76</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>323</left>
- <top>68</top>
- <right>349</right>
- <bottom>91</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>20461</icon>
- <textAlign>center</textAlign>
- <font>Chicago</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Prev</name>
- <script>on mouseDown
- lock screen
- if the shiftKey is down then go prev marked cd
- else if the commandKey is down then go first cd of this bg
- else go prev cd of this bg
- unlock screen with visual wipe left fast
- end mouseDown
-
- on mouseStillDown
- -- Requires handler: mouseDown
- mouseDown
- end mouseStillDown
- </script>
- </part>
- <part>
- <id>77</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>355</left>
- <top>68</top>
- <right>380</right>
- <bottom>91</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <true /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>22126</icon>
- <textAlign>center</textAlign>
- <font>Chicago</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Next</name>
- <script>on mouseDown
- lock screen
- if the shiftKey is down then go next marked cd
- else if the commandKey is down then go last cd of this bg
- else go next cd of this bg
- unlock screen with visual wipe right fast
- end mouseDown
-
- on mouseStillDown
- -- Requires handler: mouseDown
- mouseDown
- end mouseStillDown
- </script>
- </part>
- <part>
- <id>93</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>346</left>
- <top>5</top>
- <right>364</right>
- <bottom>24</bottom>
- </rect>
- <style>opaque</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>9832</icon>
- <textAlign>center</textAlign>
- <font>Chicago</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name>Unmark</name>
- <script>on mouseUp
- -- Requires handler: toggleMark
- toggleMark not marked of this card
- end mouseUp</script>
- </part>
- <part>
- <id>95</id>
- <type>field</type>
- <visible> <false /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <true /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>0</left>
- <top>0</top>
- <right>30</right>
- <bottom>19</bottom>
- </rect>
- <style>rectangle</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Geneva</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Sort order</name>
- <script>on mouseUp
- hide me
- end mouseUp</script>
- </part>
- <part>
- <id>96</id>
- <type>field</type>
- <visible> <false /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <true /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>141</left>
- <top>0</top>
- <right>214</right>
- <bottom>19</bottom>
- </rect>
- <style>rectangle</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Geneva</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Name Order</name>
- <script>on mouseUp
- hide me
- end mouseUp</script>
- </part>
- <part>
- <id>103</id>
- <type>button</type>
- <visible> <true /> </visible>
- <reserved5> 0 </reserved5>
- <reserved4> 0 </reserved4>
- <reserved3> 0 </reserved3>
- <reserved2> 0 </reserved2>
- <reserved1> 0 </reserved1>
- <enabled> <true /> </enabled>
- <rect>
- <left>336</left>
- <top>1</top>
- <right>373</right>
- <bottom>29</bottom>
- </rect>
- <style>transparent</style>
- <showName> <false /> </showName>
- <highlight> <false /> </highlight>
- <autoHighlight> <false /> </autoHighlight>
- <sharedHighlight> <true /> </sharedHighlight>
- <family>0</family>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>center</textAlign>
- <font>Chicago</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <name></name>
- <script>on mouseUp
- -- Requires handler: toggleMark
- toggleMark not marked of this card
- end mouseUp</script>
- </part>
- <part>
- <id>105</id>
- <type>field</type>
- <visible> <true /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <true /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <false /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>8</left>
- <top>123</top>
- <right>76</right>
- <bottom>139</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>right</textAlign>
- <font>Palatino</font>
- <textSize>10</textSize>
- <textStyle>plain</textStyle>
- <textHeight>13</textHeight>
- <name>State Label</name>
- <script></script>
- </part>
- <part>
- <id>7</id>
- <type>field</type>
- <visible> <false /> </visible>
- <dontWrap> <false /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <false /> </lockText>
- <rect>
- <left>7</left>
- <top>64</top>
- <right>285</right>
- <bottom>247</bottom>
- </rect>
- <style>scrolling</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>16</textHeight>
- <name>Notes</name>
- <script>on enterInField
- -- Requires handler toggleNotes
- toggleNotes (not visible of bkgnd field "Notes")
- end enterInField</script>
- </part>
- <part>
- <id>107</id>
- <type>field</type>
- <visible> <false /> </visible>
- <dontWrap> <true /> </dontWrap>
- <dontSearch> <false /> </dontSearch>
- <sharedText> <false /> </sharedText>
- <fixedLineHeight> <true /> </fixedLineHeight>
- <autoTab> <true /> </autoTab>
- <lockText> <true /> </lockText>
- <rect>
- <left>100</left>
- <top>0</top>
- <right>341</right>
- <bottom>24</bottom>
- </rect>
- <style>transparent</style>
- <autoSelect> <false /> </autoSelect>
- <showLines> <false /> </showLines>
- <wideMargins> <false /> </wideMargins>
- <multipleLines> <false /> </multipleLines>
- <reservedFamily> 0 </reservedFamily>
- <titleWidth>0</titleWidth>
- <icon>0</icon>
- <textAlign>left</textAlign>
- <font>Palatino</font>
- <textSize>12</textSize>
- <textStyle>plain</textStyle>
- <textHeight>22</textHeight>
- <name>Correct Name</name>
- <script></script>
- </part>
- <content>
- <layer>background</layer>
- <id>75</id>
- <text>City</text>
- </content>
- <content>
- <layer>background</layer>
- <id>80</id>
- <text>Company</text>
- </content>
- <content>
- <layer>background</layer>
- <id>79</id>
- <text>Street</text>
- </content>
- <content>
- <layer>background</layer>
- <id>82</id>
- <text>Zip Code</text>
- </content>
- <content>
- <layer>background</layer>
- <id>83</id>
- <text>Telephone</text>
- </content>
- <content>
- <layer>background</layer>
- <id>96</id>
- <text>last word</text>
- </content>
- <content>
- <layer>background</layer>
- <id>95</id>
- <text>1</text>
- </content>
- <content>
- <layer>background</layer>
- <id>81</id>
- <text>Name</text>
- </content>
- <content>
- <layer>background</layer>
- <id>105</id>
- <text>State</text>
- </content>
- <content>
- <layer>background</layer>
- <id>108</id>
- <text>on change_o
- set cantAbort of this stack to true
- put "Appointments" into ApptStack -- ∆
- put empty into Error
- -- check that there is a stack to modify
- if the cantModify of this stack then put "locked" into Error
- else if the userlevel < 3 then put "no paint" into Error
- else if there is no stack ApptStack then put "not found" into Error
- else
- -- make box
- set editBkgnd to true
- choose rect tool
- reset paint
- set pattern to 1
- set filled to true
- drag from topLeft of the target to botRight of the target
- choose line tool
- put 2+left of the target into leftEdge
- put 2+right of the target into rightEdge
- put 3+top of the target into topEdge
- put 2+bottom of the target into botEdge
- drag from leftEdge,botEdge-1 to rightEdge,botEdge-1
- drag from right of bg btn "Unmark",botEdge to rightEdge,botEdge
- drag from rightEdge-1,topEdge to rightEdge-1,botEdge
- drag from rightEdge,topEdge to rightEdge,botEdge
- reset paint
- choose browse tool
- set editBkgnd to false
-
- -- rearrange buttons
- set rect of bg btn id 22 to 360,198,407,247
- set showName of bg btn id 22 to true
- set rect of bg btn id 20 to 297,198,363,247
- show bg btn id 20
-
- -- fix Appointments stack
- -- give user opportunity to save a copy or abort
- answer "Would you like to save a copy of your" && ApptStack¬
- && "stack before a repair is attempted?" with¬
- "Cancel" or "No" or "Yes"
- if it is not "Cancel" then -- user wants fix
- if it is "Yes" then
- ask file "Save copy as:" with (ApptStack && "copy")
- if it is not empty then
- save stack ApptStack as stack it
- end if
- end if
-
- -- Go there and fix script of field id 1 (Title)
- set lockMessages to true
- push this cd
- go stack ApptStack
- if line 3 of script of this stack contains "2.2" then
- if id of this bg is 2603 then
- if there is a bg fld id 1 then
- put "on mouseDown" into TheScript
- put "if there is a bg fld" && quote & "Calendar" & quote && "then" ¬
- into line 2 of TheScript
- put "send" && quote & "drawCalendar " & quote¬
- & " & quote & short name of this cd & quote to bg fld" && quote & "Calendar" & quote¬
- into line 3 of TheScript
- put "end if" into line 4 of TheScript
- put "pass mouseDown" into line 5 of TheScript
- put "end mouseDown" into line 6 of TheScript
- put TheScript into FixedScript
- set script of bg fld id 1 to FixedScript
- send ("doMenu" && quote & "Compact Stack" & quote) to HyperCard
- end if
- end if
- end if
- end if
- pop cd
- set lockMessages to false
- end if
- return Error
- end change_o
-
- -- rect of "Home": 360,198,407,247
- -- rect of "Appointments": 297,198,363,247</text>
- </content>
- <name>Body</name>
- <script>‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû
- Script from background "Body" of Addresses Stack
- Version 2.3
-
- THE MESSAGE HANDLERS IN THIS SCRIPT:
- arrowKey,closeCard,closeStack,deleteCurrentCard,dialNumber,enterKey,
- exportText,findText,importText,importTextFile,ImportTextFromNewStack,
- ImportTextFromOldStack,printReport,resetAPButtons,returnKey,openCard,
- sortCards,toggleMark,toggleNotes,whichStackVersion,writeExportedText,
-
- THE FUNCTION HANDLERS IN THIS SCRIPT:
- executeFind,getLabelContents,lastHCItem,nameOfThisCd,substituteChar,
- swapItemDelimiter,theFields
-
- "--∆" indicates strings which will need localization
- ‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû‚àû
-
- on openCard
- set the visible of bg btn "Unmark" to (not the marked of this cd)
- pass openCard
- end openCard
-
- on arrowKey whichKey
- if (whichKey is "Right") and (the shiftKey is down)
- then go next marked card
- if (whichKey is "left") and (the shiftKey is down)
- then go prev marked card
- else pass arrowKey
- end arrowKey
-
- on closeCard
- toggleNotes false
- pass closeCard
- end closeCard
-
- on closeStack
- -- compact stack (occasionally)
- if line 1 of the stacks is not in (the stacksInUse) then
- if 10*(the freeSize of this stack) > the size of this stack then
- doMenu "Compact Stack"
- end if
- end if
- pass closeStack
- end closeStack
-
- ----- Sort Handler ------------------------------------------------
-
- on sortCards SortField
- if sortField is "Name" then
- sort cards of this bg international by nameOfThisCd()
- else sort cards of this bg international by bg fld sortField
- end sortCards
-
- function nameOfThisCd
- if bg fld "Name" is not empty then
- put bg fld "Name" into TheName
- if bg fld "Name Order" is "last word" then
- put number of words in TheName into TheNumber
- if TheNumber is 1 then
- put TheName into TheCorrectName
- else if TheNumber is 2 then
- put word 2 of TheName & "," && ¬
- word 1 of TheName into TheCorrectName
- else
- put word 3 to TheNumber of TheName & "," && ¬
- word 1 to 2 of TheName into TheCorrectName
- end if
- --
- else put bg fld "Name" into TheCorrectName
- else put bg fld "Company" into TheCorrectName
- return TheCorrectName
- end nameOfThisCd
-
- ----- Find Handlers ------------------------------------------------
-
- on findText
- -- Requires handler: toggleNotes
- global AddressFind
- if AddressFind is empty then exit findText
- find string AddressFind
- if the result is NOT empty then
- beep
- answer "“" & AddressFind & "” was not found." -- ∆
- exit findText
- end if
- if the short name of the foundField is "Notes" then
- if not visible of bg fld "Notes" then
- set cursor to watch
- toggleNotes true
- find string AddressFind in bg fld "Notes"
- end if
- else
- if visible of bg fld "Notes" then
- set cursor to watch
- toggleNotes false
- find string AddressFind in the foundField
- end if
- end if
- end findText
-
- on returnKey
- if executeFind() then findText
- else pass returnKey
- end returnKey
-
- on enterKey
- if executeFind() then findText
- else pass enterKey
- end enterKey
-
- function executeFind
- -- Requires handler: findText
- -- if the cursor is not in a field or in the message box, then
- -- assume they want to find the text again.
- global AddressFind
- if (AddressFind is not empty) and (the selectedField is empty) then
- return TRUE
- else return FALSE
- end executeFind
-
- on doMenu what
- global AddressFind
- if what is "Find..." then put empty into AddressFind -- ∆
- pass doMenu
- end doMenu
-
- ----- Misc Handlers ------------------------------------------------
-
- on dialNumber whichFld
- -- dial the phone with a specified number.
- put bg fld whichFld into phoneNumber
- if phoneNumber is empty then
- ask "What phone number would you like dialed?" -- ∆
- if the result is "Cancel" or it is empty then exit dialNumber
- put it into phoneNumber
- end if
- -- the dial handler is in the Phone Dialer stack
- if there is a stack "Phone Dialer" then -- ∆
- lock screen
- push cd -- remember where we are
- go stack "Phone Dialer" -- ∆
- if the result is empty then
- dial phoneNumber
- pop cd
- unlock screen
- end if
- else dial phoneNumber
- end dialNumber
-
- on toggleMark isMarked
- -- 'dog ear' the card to reflect its 'marked' status
- set the marked of this card to isMarked
- set the visible of bg btn "Unmark" to (not isMarked)
- end toggleMark
-
- on toggleNotes visStatus
- -- shows and hides the notes field
- lock screen
- set hilite of bg btn id 54 to visStatus
- set the visible of bg fld "Notes" to visStatus
- if visStatus then -- show it
- -- change the name of the btn to hide notes fld
- set the name of bg btn id 54 to "Hide Notes" -- ∆
- put "wipe left fast" into theVisEffect
- select after text of bg fld "Notes"
- else -- hide it
- -- change the name of the btn to hide notes field
- set the name of bg btn id 54 to "Show Notes" -- ∆
- put "wipe right fast" into theVisEffect
- end if
- unlock screen with visual effect theVisEffect
- end toggleNotes
-
- on printReport
- -- print all the cards or just marked cards
- put (the shiftKey is up) into printAllCards
- -- ask user to select a template
- put the reportTemplates of this stack into TemplateList
- put "Please select a report template for your addresses:"¬
- into textPrompt -- ∆
- put showList(TemplateList,textPrompt,false,true,"Select,Cancel",1)¬
- into TheSelection -- ∆
- if line 1 of TheSelection is "Cancel" then exit printReport -- ∆
- put line (line 2 of TheSelection) of TemplateList into theTemplate
- -- print addresses
- open report printing with template theTemplate
- go first card of bg "Body"
- if printAllCards then print (number of cards in bg "Body") cards
- else print marked cards
- close printing
- end printReport
-
- on dialNumber phoneNumber
- -- Requires handler: dial from the Phone Stack
- -- dial the phone using the Phone Dialer stack
- set cursor to watch
- if phoneNumber is empty then exit dialNumber
- push card -- remember where we are
- lock screen
- -- the 'dial' handler is in the 'Phone Dialer' stack
- if there is a stack "Phone Dialer" then -- ∆
- go stack "Phone Dialer" -- ∆
- dial phoneNumber -- dial the number
- else answer "The number could not be dialed, because the Phone Dialer stack cannot be found." -- ∆
- pop card -- return to where we were
- unlock screen
- end dialNumber
-
- ----- Label Function -------------------------------
-
- function getLabelContents
- -- Assembles information for print labels
- --
- put empty into TheAddress
- --
- put bg fld "Street" & return & bg fld "City" & ¬
- ", " & bg fld "State" && bg fld "Zip" into TheAddress
- --
- if bg fld "Company" is not empty then
- put bg fld "Company" & return before TheAddress
- end if
- --
- if bg fld "Name" is not empty then
- put bg fld "Name" & return before TheAddress
- end if
- --
- return TheAddress
- end getLabelContents
-
- ----- Import Text Operations -------------------------------
-
- -- text files to be imported into the stack need to be in a specific
- -- format: chunks of information (such as Name, Company,
- -- etc.) should be separated by tabs
-
- on importText
- -- Requires handlers: importTextFromStack,importTextFile
- -- import text from a HyperCard 1.x or 2.x Address stack or from a text file
- answer "Import text from a text file or from an Address stack" ¬
- && "(that shipped with a version of HyperCard)?" ¬
- with "Cancel" or "Stack" or "Text File" -- ∆
- if it is "Cancel" then exit importText -- ∆
- if it is "Stack" then whichStackVersion -- ∆
- else ImportTextFile
- end importText
-
- on ImportTextFile fileName
- -- Requires handler: toggleMark, deleteCurrentCard
- -- Requires function handler: theFields, SubstituteChar
- -- import text from a text file stored in the correct format
- if fileName is empty then
- answer file "Import text from what file?" of type "TEXT" -- ∆
- if the result is "Cancel" or it is empty then exit ImportTextFile
- put it into fileName
- end if
- put theFields() into fieldList
- set cursor to busy
- go last card of bg "Body" -- adds the new cards to the end of the stack -- ∆
- set lockRecent to true
- set lockMessages to true
- open file fileName
- put false into exitLoop
- repeat until exitLoop
- if the mouseClick then
- answer "Stop importing text?" with "No" or "Yes" -- ∆
- if it is "Yes" then exit repeat -- ∆
- end if
- set cursor to busy
- doMenu "New Card"
- toggleMark false
- repeat with fieldNum = 1 to (number of items in fieldList - 1)
- read from file fileName until tab
- if it is empty then -- out of text
- deleteCurrentCard -- delete the straggler
- put true into exitLoop
- exit repeat
- end if
- if last char of it is tab then delete last char of it
- do "put it into" && item fieldNum of fieldList
- end repeat
- if exitLoop then exit repeat
- read from file fileName until return
- put SubstituteChar("…", return, it) into it
- do "put it into" && item fieldNum + 1 of fieldList
- end repeat
- close file fileName
- set lockRecent to false
- set lockMessages to false
- end ImportTextFile
-
- on whichStackVersion
- -- Requires handler: importTextFile
- -- Requires function handler: SubstituteChar, SwapItemDelimiter
- -- import text from the HyperCard 1.x Address stack.
- answer file "Import text from which Address stack?" of type "STAK" -- ∆
- if it is empty or the result is "Cancel" then exit to hyperCard -- ∆
- put it into exportStack
- put exportStack into fileName
- put SwapItemDelimiter(colon) into oldDelimiter
- delete last item of fileName
- set the itemDelimiter to oldDelimiter
- put fileName & ":HCAddressExportHC" into fileName
- put the long name of this stack into importStack
- push cd
- set cursor to busy
- set lockMessages to true
- set lockRecent to true
- go stack exportStack
-
- -- export all the other stacks data to a file then import into this stack -- ∆
- put number of bg fields into numBgFields
- if numBgFields = 0 then
- answer "There are no background fields from which to export data!" -- ∆
- exit to hyperCard
- end if
-
- -- version 1.2.5 or earlier
- if (there is a bg fld "Name and Address") and ¬
- (there is a bg fld "Phone Number") and ¬
- (there is a bg fld "Date") then
- ImportTextFromOldStack fileName
- else if there is a bg "Body" and hasCorrectFlds() then
- ImportTextFromNewStack fileName -- version 2.0 or later
- else
- answer "This stack has been modified or was" && ¬
- "not shipped with a version of HyperCard." -- ∆
- exit to HyperCard
- end if
- go to importStack
- unlock screen
- ImportTextFile fileName -- now import the file
- open file fileName
- write empty to file fileName -- empty out the temp file
- close file fileName
- pop cd
- end whichStackVersion
-
- function hasCorrectFlds
- put "Name,Company,Street,Zip,Phone 1,Phone 2,Phone 3,Phone 4,Notes" into list
- repeat with i = 1 to 9
- if there is not a bg fld (item i of list) then return "False"
- end repeat
-
- put "false" into itExists
- if (there is a bg fld "CityState") then put "true" into itExists
- if (there is a bg fld "City") and (there is a bg fld "State")
- then put "true" into itExists
- if itExists is "false" then return "false"
-
- return "True"
- end hasCorrectFlds
-
- on ImportTextFromNewStack fileName
- -- collects from version 2.0 or later Addresses Stacks
- open file fileName
-
- repeat the number of cds of bg "Body"
- set cursor to busy
-
- put bg fld "Name" into theName -- name
- put bg fld "Company" into theCompany -- company
- put bg fld "Street" into theStreet -- street
-
- if there is a bg fld "CityState" then -- version 2.0v2
- get bg fld "CityState"
- put item 1 of it into theCity -- city
- put item 2 of it into theState -- state
-
- if char 1 of theState is space then
- delete char 1 of theState
- end if
-
- else -- version 2.1
- put bg fld "City" into theCity -- city
- put bg fld "State" into theState -- state
- end if
-
- put bg fld "Zip" into theZip -- Zip Code
-
- put empty into thePhones
- repeat with i = 1 to 4
- put bg fld ("Phone" && i) & tab after thePhones
- end repeat
-
- put bg fld "Notes" into theNotes -- notes field
- put SubstituteChar(return, "…", theNotes) into theNotes -- ∆
-
- write theName & tab & theCompany & tab & theStreet & tab & ¬
- theCity & tab & theState & tab & theZip & tab & thePhones & ¬
- theNotes & return to file fileName
- go next cd of bg "Body"
- end repeat
-
- close file fileName
- end ImportTextFromNewStack
-
- on ImportTextFromOldStack fileName
- -- collects from version 1.2.5 or earlier Address Stacks
-
- open file fileName
-
- lock screen
- repeat the number of cards
- set cursor to busy
-
- put bg fld "Name and Address" into anAddress
-
- put the number of lines in anAddress into numLines
- repeat with lineNdx = 1 to the number of lines in anAddress
- if line lineNdx of anAddress = empty then exit repeat
- end repeat
-
- put empty into theNotes
- if lineNdx ≠ numLines then
- if lineNdx > 4 then
- put line lineNdx to 32000 of anAddress & return into theNotes
- delete line lineNdx to 32000 of anAddress
- put word 1 to 2000 of anAddress into anAddress -- strip blank lines
- put the number of lines in anAddress into numLines
- end if
- end if
-
- put line 1 of anAddress into theName -- Name
-
- if (numLines - 2) > 1 then -- if there's a third to last line, it's company
- put line (numLines - 2) of anAddress into theCompany
- if (numLines - 2) > 2 then
- put return & line 2 to (numLines - 3) of anAddress & return ¬
- after theNotes -- department?
- end if
- else put empty into theCompany
-
- if numLines = 2 then put line 2 of anAddress into theStreet
- else if (numLines - 1) > 1 then -- if there's a second to last line, it's street
- put line (numLines - 1) of anAddress into theStreet -- street
- else put empty into theStreet
-
- put empty into thePhones
- repeat with phoneNdx = 1 to 4
- put line phoneNdx of bg fld "Phone Number" & tab after thePhones
- end repeat
-
- if bg fld "Date" ≠ empty then
- put bg fld "Date" after theNotes -- move the date to the notes field
- end if
- put SubstituteChar(return, "…", theNotes) into theNotes -- ∆
-
- put empty into theCity
- put empty into theState
- put empty into theZip
- if numLines > 2 then
- put line numLines of anAddress into lastLine
- put last word of lastLine into lastWord
- if lastWord ≠ empty then
- if offset(lastWord, "/-+") = 0 then
- if value(lastWord) is a number then
- put lastWord into theZip
- delete last word of lastLine
- end if
- end if
- end if
-
- put item 1 of lastLine into theCity
- put word 1 of item 2 of lastLine into theState
- end if
-
- write theName & tab & theCompany & tab & theStreet & tab & ¬
- theCity & tab & theState & tab & theZip & tab & thePhones & ¬
- theNotes & return to file fileName
- go next card
- end repeat
-
- close file fileName
- end ImportTextFromOldStack
-
- ----- Export Text Operations -------------------------------------
-
- on exportText
- -- Requires handler: writeExportedText
- -- Requires function handler: lastHCItem
- -- if shiftKey is down use only the marked cards
- if the shiftKey is down then
- put false into useAllCards
- put "from marked cards" & space into prompt -- ∆
- put number of marked cards into numCards
- else
- put true into useAllCards
- put empty into prompt
- put number of cards in bg "Body" into numCards
- end if
- ask file "Export text" && prompt & "to the file:" with "Addresses Text File" -- ∆
- if the result is "Cancel" or it is empty then exit exportText
- put it into fileName
- writeExportedText numCards, useAllCards, fileName
- if numCards = 1 then put "card" into info -- ∆
- else put "cards" into info -- ∆
- answer "The text from" && numCards && info && ¬
- "was exported to the new file “" & lastHCItem(":",fileName) & "”." -- ∆
- end exportText
-
- on writeExportedText numCards, useAllCards, fileName
- -- Requires function handler: theFields
- lock screen
- if useAllCards then go card 1 of bg "Body"
- else go first marked card
- put theFields() into fieldList
- open file fileName
- repeat with currentCard = 1 to numCards
- set cursor to busy
- put empty into theText
- repeat with i = 1 to (number of items in fieldList - 1)
- put value of (item i of fieldList) & tab after theText
- end repeat
- put SubstituteChar(return,"…", value of (item i + 1 of fieldList)) & ¬
- tab & return after theText
- write theText to file fileName
- if not useAllCards then go next marked card
- else go next card of this bg
- end repeat
- close file fileName
- unlock screen
- end writeExportedText
-
- ----- Utility Handlers --------------------------------------------
-
- on deleteCurrentCard
- lock screen
- push prev cd
- doMenu "Delete Card"
- pop cd
- unlock screen
- end deleteCurrentCard
-
- function LastHCItem theDelim,theText
- -- returns the portion of <theText> that follows the last <delim>
- put SwapItemDelimiter(theDelim) into oldDelim
- put last item of theText into theResult
- set the itemDelimiter to oldDelim
- return theResult
- end LastHCItem
-
- function SubstituteChar origChar, newChar, theText
- -- returns ‘theText’ with ‘newChar’ substituted for all instances of ‘origChar’
- repeat
- put Offset(origChar, theText) into charPos
- if charPos = 0 then return theText
- put newChar into char charPos of theText
- end repeat
- end SubstituteChar
-
- function SwapItemDelimiter newDelim
- -- change the itemDelimiter, return the old delimiter for later resetting
- put the itemDelimiter into oldDelim
- set the itemDelimiter to newDelim
- return oldDelim
- end SwapItemDelimiter
-
- on presto
- send "idle" to bg btn id 108
- end presto
-
- ----- Data Handlers ----------------------------------------------
-
- function theFields
- return "bg fld id 4,bg fld id 97," & ¬
- "bg fld id 6,bg fld id 98,bg fld id 99," & ¬
- "bg fld id 104,bg fld id 8,bg fld id 100," & ¬
- "bg fld id 101,bg fld id 102,bg fld id 7"
- end theFields</script>
- </background>
-